package com.cbg.es.service;

import com.cbg.es.dto.EsTableListDTO;
import com.cbg.es.entity.EsTableCategory;
import com.cbg.es.repository.IEsTableCategoryRepository;
import com.shuyuwl.core.service.IDaoService;

import java.util.List;

/**
 * 全景通查分类下展示表 service
 *
 * @author wangjuzheng
 * @since 2019-10-16
 */
public interface IEsTableCategoryService extends IDaoService<EsTableCategory, Long, IEsTableCategoryRepository> {
    /**
     * 查询分类下的展示表信息
     *
     * @param categoryId 分类id
     * @return 展示表列表信息
     */
    List<EsTableCategory> findByCategoryId(Long categoryId);

    /**
     * 查询全部的展示表信息
     *
     * @param tableCategoryIds 展示表id集合
     * @return 展示表信息
     */
    List<EsTableCategory> getAllEsTableCategory(List<Long> tableCategoryIds);

    /**
     * 删除分类下的所有的展示表和对应的列信息
     *
     * @param categoryId 分类id
     */
    void deleteByCategoryId(Long categoryId);

    /**
     * 查询展示表详情
     *
     * @param tableCategoryId 展示表id
     * @return 展示表详情
     */
    EsTableCategory findById(Long tableCategoryId);

    /**
     * 查询分类id下的最大排序号
     *
     * @param categoryId 分类id
     * @return 排序号
     */
    Integer getMaxSort(Long categoryId);

    /**
     * 查询分类下的展示表信息
     *
     * @param categoryId 分类id
     * @return 展示表信息
     */
    List<EsTableListDTO> selectedCategory(Long categoryId);

    /**
     * 删除分类下的展示表信息
     *
     * @param categoryId 分类id
     * @param ids        展示表id集合
     */
    void deleteByCategoryIdAndTableCategoryIdNeqIn(Long categoryId, List<Long> ids);
}
